package com.qijian.business.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qijian.common.annotation.Excel;
import com.qijian.common.core.domain.BaseEntity;

/**
 * 库存主对象 fm_inventory
 *
 * @author qijian
 * @date 2021-09-28
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString
@TableName("fm_inventory")
public class Inventory extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "唯一id")
    private Long id;

    @Excel(name = "单据编号")
    @ApiModelProperty(value = "单据编号")
    private String number;

    /** 库管人员id*/
    @Excel(name = "库管人员id ")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "库管人员id ")
    private Long stockManagerId;

    /** 单据主题名称 */
    @Excel(name = "单据主题名称")
    @ApiModelProperty(value = "单据主题名称")
    private String topicName;

    /** 库管人员名称 */
    @Excel(name = "库管人员名称")
    @ApiModelProperty(value = "库管人员名称")
    private String stockManagerName;

    /** 入库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "入库时间")
    private Date inStockTime;

    /** 出库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出库时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "出库时间")
    private Date outStockTime;

    /** 来源单据id */
    @Excel(name = "来源单据id")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "来源单据id")
    private Long sourceId;

    /** 来源单据类型 */
    @Excel(name = "来源单据类型")
    @ApiModelProperty(value = "来源单据类型")
    private String sourceType;

    /** 供应商id */
    @Excel(name = "供应商id")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "供应商id")
    private Long supplierId;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    /** 客户id */
    @Excel(name = "客户id")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "客户id")
    private Long customerId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "客户名称")
    private String customerName;

    /** 备注 */
    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;

    /** 合计金额 */
    @Excel(name = "合计金额")
    @ApiModelProperty(value = "合计金额")
    private BigDecimal totalAmount;

    /** 合计数量 */
    @Excel(name = "合计数量")
    @ApiModelProperty(value = "合计数量")
    private Long totalNumber;

    /** 出库或入库 0、入库   1、出库 */
    @Excel(name = "出库或入库 0、入库   1、出库")
    @ApiModelProperty(value = "出库或入库 0、入库   1、出库")
    private Long flag;

}
